package NM;
//用数组来实现队列；即设计循环队列；
public class MyCircularQueue {
    public int front;
    public int rear;
    public int[] elem;
    public MyCircularQueue(int k){
        elem=new int[k+1];
    }
//入队列；
    public boolean enQueue(int value){
        if(isFull()){
            return false;
        }
        elem[rear]=value;
        rear=(rear+1)%elem.length;
        return true;
    }
    //出队列；
    public boolean  deQueue(){
        if(isEmpty()){
            return false;
        }
        front=(front+1)%elem.length;
        return true;

    }
    //得到队头元素；
    public int Front(){
        if(isEmpty()){
            return -1;
        }
        return elem[rear];
    }
    //得到队尾元素；
    public int Rear(){
        if(isEmpty()){
            return -1;
        }
        int index=rear==0?elem.length-1:rear-1;
        return elem[index];

    }
    public boolean isEmpty(){
       return front==rear;
    }
    //判断满了没有；
    public boolean isFull(){
        return (rear+1)%elem.length==front;
    }
}
